/**
 * 
 */

package com.gustozzi.distribucion.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.gustozzi.distribucion.negocio.CobranzaBO;
import com.gustozzi.distribucion.negocio.impl.CobranzaBOImpl;
import com.gustozzi.domain.Cobranza;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * @author VERONICA
 * 
 */
public class ReporteCobranzaAction extends ActionSupport implements ServletRequestAware
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String btnSeleccionado;
    private Cobranza cobranzaBusqueda;
    private ActionContext context;
    private Map<String, Object> appCon;
    private List<Cobranza> listaCobranza;
    CobranzaBO cobranzaBO = new CobranzaBOImpl();
    boolean indicadorConsulta;

    public String execute()
    {
        String destino = "";

        try
        {

            if (btnSeleccionado.equalsIgnoreCase("Filtrar"))
            {
                destino = filtrar();
            }
            else if (btnSeleccionado.equalsIgnoreCase("Exportar"))
            {
                destino = "SUCCESS";

            }
            else if (btnSeleccionado.equalsIgnoreCase("Cancelar"))
            {
            }

        }
        catch (Exception e)
        {
            destino = "ERROR";
        }
        return destino;
    }

    public String filtrar()
    {
        String destino = "";
        List<Cobranza> lista = null;
        try
        {

            String rucCliente = cobranzaBusqueda.getCliente().getRuc();
            String razonSocial = cobranzaBusqueda.getCliente().getRazonSocial();
            String codigoCentroDistribucion = cobranzaBusqueda.getCentroDistribucion().getCodigo();
            String fechaDesde = cobranzaBusqueda.getFechaDesde();
            String fechaHasta = cobranzaBusqueda.getFechaHasta();
            String cobrador = "";

            lista = new ArrayList<Cobranza>();
            lista = cobranzaBO.obtenerListaCobranza(rucCliente, "", razonSocial, codigoCentroDistribucion, cobrador,
                    fechaDesde, fechaHasta);
            this.setListaCobranza(lista);

            if (lista.size() > 0)
                indicadorConsulta = false;
            else
                indicadorConsulta = true;

            context = ActionContext.getContext();
            appCon = context.getApplication();
            appCon.put("listaCobranza", listaCobranza);
            destino = "REPORTECOBRANZA";

        }
        catch (Exception e)
        {
            destino = "ERROR";
        }
        return destino;
    }

    @SuppressWarnings("unchecked")
    public String exportar()
    {

        String destino = "SUCCESS";
        context = ActionContext.getContext();
        appCon = context.getApplication();
        listaCobranza = (List<Cobranza>) appCon.get("listaCobranza");
        this.setListaCobranza(listaCobranza);

        return destino;

    }

    @SuppressWarnings("unchecked")
    public String exportarExcel()
    {

        String destino = "SUCCESSEXCEL";
        context = ActionContext.getContext();
        appCon = context.getApplication();
        listaCobranza = (List<Cobranza>) appCon.get("listaCobranza");
        this.setListaCobranza(listaCobranza);

        return destino;

    }

    /**
     * @return the despachoBusqueda
     */
    public Cobranza getCobranzaBusqueda()
    {
        return cobranzaBusqueda;
    }

    /**
     * @param despachoBusqueda
     *            the despachoBusqueda to set
     */
    public void setCobranzaBusqueda(Cobranza cobranzaBusqueda)
    {
        this.cobranzaBusqueda = cobranzaBusqueda;
    }

    /**
     * @return the listaDespachos
     */
    public List<Cobranza> getListaCobranza()
    {
        return listaCobranza;
    }

    /**
     * @param listaDespachos
     *            the listaDespachos to set
     */
    public void setListaCobranza(List<Cobranza> listaCobranza)
    {
        this.listaCobranza = listaCobranza;
    }

    @Override
    public void setServletRequest(HttpServletRequest arg0)
    {
    }

    public boolean isIndicadorConsulta()
    {
        return indicadorConsulta;
    }

    public void setIndicadorConsulta(boolean indicadorConsulta)
    {
        this.indicadorConsulta = indicadorConsulta;
    }

    /**
     * @param btnSeleccionado
     *            the btnSeleccionado to set
     */
    public void setBtnSeleccionado(String btnSeleccionado)
    {
        this.btnSeleccionado = btnSeleccionado;
    }

}
